#include "Adapter.h"

#include <iostream>
using namespace std;

Target::Target()
{
    cout << "Target::Target()" << endl; 
}

Target::~Target()
{
    cout << "Target::~Target()" << endl; 
}

void Target::Request()
{
    cout << "Target::Request()" << endl;
}

Adaptee::Adaptee()
{
    cout << "Adaptee::Adaptee()" << endl;
}

Adaptee::~Adaptee()
{
    cout << "Adaptee::~Adaptee()" << endl;
}

void Adaptee::SpecificRequest()
{
    cout << "Adaptee::SpecificRequest()" << endl;
}

Adapter::Adapter(Adaptee* adaptee)
{
    cout << "Adapter::Adapter(Adaptee* adaptee)" << endl;
    _adaptee = adaptee;
}

Adapter::~Adapter()
{
    cout << "Adapter::~Adapter()" << endl;
}

void Adapter::Request()
{
    cout << "Adapter::Request()" << endl;
    _adaptee->SpecificRequest();
}